10 PRINT"[147]MINI M.U.F.":PRINT"COMPUTE THE MAXIMUM":PRINT"USABLE FREQUENCY" 20 PRINT"BETWEEN ANY TWO":PRINT"HAM RADIO STATIONS":PRINT"XTMR=TRANSMITTER" 30 PRINT"RCVR=RECEIVER" 40 PRINT" HIT ANY KEY TO GO ON":POKE198,0 50 GETA$:IFA$=""THEN50 90 REM - FNACS() IS THE INVERSE (ARC) COSINE FUNCTION 95 DEF FNACS(X)=-ATN(X/SQR(-X*X+1))+(null)/2 99 : 100 REM - FNS() AIDS IN ALIGNING COLUMNS OF NUMBERS 105 DEF FNS(X)=3-INT(LOG(X)/LOG(10)) 110 DIM M$(37),A$(4),M(12) 120 DATA 31,28,31,30,31,30,31,31,30,31,30,31 130 FOR I=1 TO 12: READ M(I): NEXT I 140 M$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" 150 R0=(null)/180 155 P1=2*(null) 160 R1=180/(null) 170 P0=(null)/2 180 PRINT"[147] MINI M.U.F. " 190 PRINT"XMTR (LAT,LON)"; 200 INPUT L1,W1 210 IF L1=>-90 AND L1=<90 THEN 240 220 PRINT"INVALID LATITUDE:":PRINT" USE -90 TO 90" 230 GOTO 190 240 IF W1=>-360 AND W1=<360 THEN 270 250 PRINT"INVALID LONGITUDE:":PRINT" USE -360 TO 360" 260 GOTO 190 270 PRINT"RCVR (LAT,LON)"; 280 INPUT L2,W2 290 IF L2=>-90 AND L2=<90 THEN 320 300 PRINT"INVALID LATITUDE:":PRINT" USE -90 TO 90" 310 GOTO 270 320 IF W2=>-360 AND W2=<360 THEN 350 330 PRINT"INVALID LONGITUDE:":PRINT" USE -360 TO 360" 340 GOTO 270 350 PRINT"DATE (DAY,#MO.)"; 360 INPUT D6,M0 370 IF M0=>1 AND M0=<12 THEN 400 380 PRINT"INVALID MONTH:":PRINT" MUST BE 1 TO 12" 390 GOTO 350 400 IF D6=>1 AND D6=0 THEN 480 460 PRINT"INVALID SUNSPOT NO.:":PRINT"MUST BE NON-NEGATIVE." 470 GOTO 430 480 PRINT"[147] MINI M.U.F. " 490 A$=MID$(M$,3*M0-2,3) 500 PRINT"DATE: "D6;A$ 510 PRINT"LOCATION LAT LONG" 520 PRINT"XMTR: "L1;TAB(16);W1 530 PRINT"RCVR: "L2;TAB(16);W2 540 PRINT"SUNSPOT NUMBER:"S9 550 PRINT" HIT ANY KEY TO GO ON ";: POKE 198,0 560 GET A$: IF A$="" THEN 560 570 PRINT"[147] MINI M.U.F. " 580 PRINT" HR"TAB(6)"MUF"TAB(12)"HR"TAB(17)"MUF" 600 L1=L1*R0 610 W1=W1*R0 620 L2=L2*R0 630 W2=W2*R0 640 FOR IT5=0 TO 11 650 T5=IT5: GOSUB 1000 660 PRINT T5;TAB(2+FNS(J9));INT(10*J9+.5)/10; 670 T5=IT5+12: GOSUB 1000 675 PRINT TAB(11);T5;TAB(13+FNS(J9));INT(10*J9+.5)/10 680 NEXT IT5 685 PRINT" TIME=UTC -- FREQ=MHZ" 690 PRINT"HIT ANY KEY TO DO MORE";: POKE 198,0 700 GET A$: IF A$="" THEN 700 710 GOTO 180 1000 REM - MINIMUF 3.5 1010 K7=SIN(L1)*SIN(L2)+COS(L1)*COS(L2)*COS(W2-W1) 1020 IF K7<=-1 THEN K7=-.99999999 1050 IF K7=>1 THEN K7=.99999999 1070 G1=FNACS(K7) 1080 K6=1.59*G1 1090 IF K6<1 THEN K6=1 1110 K5=1/K6 1120 J9=100 1130 FOR K1=1/2*K6 TO 1-1/2*K6 STEP .9999-1/K6 1140 IF K5<>1 THEN K5=.5 1160 P=SIN(L2) 1170 Q=COS(L2) 1180 A=(SIN(L1)-P*COS(G1))/(Q*SIN(G1)) 1190 B=G1*K1 1200 C=P*COS(B)+Q*SIN(B)*A 1210 D=(COS(B)-C*P)/(Q*SQR(1-C^2)) 1220 IF D<=-1 THEN D=-.99999999 1250 IF D=>1 THEN D=.99999999 1270 D=FNACS(D) 1280 W0=W2+SGN(SIN(W1-W2))*D 1290 IF W0<0 THEN W0=W0+P1 1310 IF W0>P1 THEN W0=W0-P1 1330 IF C<-1 THEN C=-.99999999 1350 IF C>1 THEN C=.99999999 1380 L0=P0-FNACS(C) 1390 Y1=.0172*(10+(M0-1)*30.4+D6) 1400 Y2=.409*COS(Y1) 1410 K8=3.82*W0+12+.13*(SIN(Y1)+1.2*SIN(2*Y1)) 1420 K8=K8-12*(1+SGN(K8-24))*SGN(ABS(K8-24)) 1430 IF COS(L0+Y2)>-.26 THEN 1520 1440 K9=0 1450 G0=0 1460 M9=2.5*G1*K5 1470 IF M9>P0 THEN M9=P0 1490 M9=SIN(M9) 1500 M9=1+2.5*M9*SQR(M9) 1510 GOTO 1770 1520 K9=(-.26+SIN(Y2)*SIN(L0))/(COS(Y2)*COS(L0)+1E-3) 1530 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.639437 1540 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2)) 1550 T4=K8+K9/2-12*(1+SGN(K8-K9/2-24))*SGN(ABS(K8+K9/2-24)) 1560 C0=ABS(COS(L0+Y2)) 1570 T9=9.7*C0^9.6 1580 IF T9=<.1 THEN T9=.1 1600 M9=2.5*G1*K5 1610 IF M9>P0 THEN M9=P0 1630 M9=SIN(M9) 1640 M9=1+2.5*M9*SQR(M9) 1650 IF T40 THEN 1690 1670 GOTO 1820 1680 IF (T5-T4)*(T-T5)>0 THEN 1820 1690 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5)) 1700 G9=(null)*(T6-T)/K9 1710 G8=(null)*T9/K9 1720 U=(T-T6)/T9 1730 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8) 1750 IF G0